import java.util.Arrays;
import java.util.Scanner;

public class demo {

    //    计算日期到天数转换
//    输入：2012 12 31
//    输出：366
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int year = in.nextInt();
        int month = in.nextInt();
        int day = in.nextInt();
        int sum = 0;
        int arr[] = {31,28,31,30,31,30,31,31,30,31,30};
        for(int i = 0; i < month-1; i++) {
            sum += arr[i];
        }
        if((year%400==0 || (year%4==0 && year%100!=0)) && month>2) {
            sum+=1;
        }
        sum += day;
        System.out.println(sum);
    }



    //    幸运的袋子▲
//    一个袋子里面有n个球，每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。
//例如：如果袋子里面的球的号码是{1, 1, 2, 3}，这个袋子就是幸运的，因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3
//你可以适当从袋子里移除一些球(可以移除0个,但是别移除完)，要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得的多少种不同的幸运的袋子。
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] arr = new int[n];
        for(int i=0; i<n; i++) {
            arr[i] = in.nextInt();
        }
        Arrays.sort(arr);
        System.out.println(count(arr,n,0,0,1));
    }
    //    画图来理解
//    1 1 3 5 7
//    1 1 3 5 7
//    1 1 3 5 7
//    1 1 3 5 7
//    1 1 3满足 但是1 1 3 5不满足所以1 1 3 7也不满足 就可以break返回上一层  因为1 1 3满足 所以我们要判断1 1 5是否满足
//    所以我们还需要回溯sum和mul  然后判断1 1 5 -> 1 1 7->1 3-> 1 5->...
// arr表示数组  n数组个数  pos循环开始起始点  sum和  mul积  count幸运数字的个数
//    1.需要将袋子里的球排序   因为a1+a2+a3+...ak>a1a2a3...ak; 当再加一个数a(k+1)不满足这个条件  后面的数也就不满足条件
//    a+b>a*b 这里a和b至少有一个为1
//    2.在循环进行中 当一个号码和前面的号码无法组成幸运的袋子 那么直接break 因为 △后面的号码肯定比前面的号码数字大或者等于
//    所以也就无法构成幸运的袋子
//    3.当我们我们返回上一层递归的时候,需要回溯,继续计算前面的号码和当前位置后面的号码是否可以构成幸运的袋子
//    4.特殊情况 a[i]==1时 就是最开始的情况 (袋子只有一个球是不满足条件的) 两个球 都为1 也可以满足sum>mul
    public static int count(int[] arr, int n, int pos, int sum, int mul) {
        int count = 0;
        for(int i = pos; i < n; i++) {
            sum = sum + arr[i];
            mul = mul *  arr[i];
            if(sum > mul) {
                count = count + 1 + count(arr, n, i+1, sum, mul);
            }else if(arr[i] == 1){
                count = count + count(arr, n, i+1, sum, mul);
            }else {
                break;
            }
            sum = sum - arr[i];
            mul = mul / arr[i];
//            遇到相同的球 跳过 因为题目说(拥有相同号码的球是无区别的)
            while(i<n-1 && arr[i]==arr[i+1]) {
                i++;
            }
        }
        return count;
    }

}
